package com.lgd.warehousemanagement.Application;

import android.app.Application;
import android.os.StrictMode;
import android.util.Log;

import com.lgd.warehousemanagement.Activity.MainActivity;
import com.lgd.warehousemanagement.BuildConfig;
import com.lgd.warehousemanagement.Utils.MyUncaughtExceptionHandler;
import com.lgd.warehousemanagement.httpService.API;


/**
 * @Author lgd
 * @Date 2024/4/18 10:14
 *   全局
 */
public class MyApplication extends Application {
    private static final String TAG = "MyApplication";
    @Override
    public void onCreate() {
        super.onCreate();
        try {
            API.init();   // 网络 初始化
        } catch (Exception e) {
            e.printStackTrace();
            Log.e(TAG, "异常：", e);
        }
        MyUncaughtExceptionHandler.getInstance(MyApplication.this).init();  // 异常捕获

//        if(BuildConfig.DEBUG) {
//            Log.d(TAG, "onCreate: debug模式");
//            StrictMode.setThreadPolicy(
//                    new StrictMode.ThreadPolicy.Builder()
//                            .detectNetwork()//监测主线程使用网络io
//                            .detectCustomSlowCalls()//监测自定义运行缓慢函数
//                            .detectDiskReads() // 检测在UI线程读磁盘操作
//                            .detectDiskWrites() // 检测在UI线程写磁盘操作
//                            .penaltyLog() //写入日志
//                            .penaltyDialog()//监测到上述状况时弹出对话框
//                            .build());
//            //开启VM策略模式
//            StrictMode.setVmPolicy(new StrictMode.VmPolicy.Builder().detectLeakedSqlLiteObjects()//监测sqlite泄露
//                    .detectLeakedClosableObjects()//监测没有关闭IO对象
//                    .setClassInstanceLimit(MainActivity.class, 1) // 设置某个类的同时处于内存中的实例上限，可以协助检查内存泄露
//                    .detectActivityLeaks()
//                    .penaltyLog()//写入日志
//                    .penaltyDeath()//出现上述情况异常终止
//                    .build());
//        }

    }

}
